package Day_0225.SpringAOP;

/**
 * @author zxc
 * @date 2023/02/25 12:02
 **/
public class Spring_Runtime_Notification_Object {
    public static void main(String[] args) {
        /**
         * Spring在运行时通知对象
         * ===》
         * 1.通过在代理类中包裹切面，Spring在运行期，把切面织入到Spring管理的bean中。
         *
         * 2.代理封装了目标类，并拦截被通知方法的调用，再把调用转发给真正的目标bean。
         * ===》
         * 当代理拦截到方法调用时，在调用目标bean方法之前，会执行切面逻辑。
         *
         * 3.直到应用需要被代理的bean时，Spring才创建代理对象。
         * （1）如果使用的是ApplicationContext的话，在ApplicationContext从BeanFactory中加载所有bean的时候，Spring才会创建被代理的对象。
         * （2）因为Spring运行时，才创建代理对象，所以我们不需要特殊的编译器来织入SpringAOP的切面。
         * ===》
         * 代理对象的创建是懒创建;
         *
         */
    }
}
